package com.htd.base.common.config.bean;

import com.htd.base.modules.translate.enumeration.LangCodeEnum;
import lombok.Setter;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Setter
public class LanguageConfig {

    /**
     * 是否开启多语言功能 默认关闭
     */
    private Boolean open;

    /**
     * 默认语言 默认英语
     */
    private String default_locale;

    /**
     * 启用语言（逗号分隔） 默认英语
     */
    private String enable_locale;

    /**
     * 数据库配置
     */
    private DatabaseConfig database;

    /**
     * 缓存配置
     */
    private CacheConfig cache;

    public DatabaseConfig database() {
        return database == null ? new DatabaseConfig() : database;
    }

    public CacheConfig cache() {
        return cache == null ? new CacheConfig() : cache;
    }

    public String default_locale() {
        return default_locale == null ? LangCodeEnum.EN.getLangCode() : default_locale;
    }

    public Boolean getOpen() {
        return open != null && open;
    }

    public String enable_locale() {
        // 如果没有设定启用语言，则默认启用英语
        return enable_locale == null ? LangCodeEnum.EN.getLangCode() : enable_locale;
    }

    public List<String> enable_locale_list() {
        // 如果没有设定启用语言，则默认启用英语
        if (enable_locale == null || enable_locale.isEmpty()) {
            List<String> list = new ArrayList<String>();
            list.add(LangCodeEnum.EN.getLangCode());
            return list;
        } else {
            String[] array = enable_locale.split(",");
            return Arrays.stream(array).toList();
        }
    }
}
